编写程序将"char* t="snbjbiubk"中的所有'b' 改成'c'.求代码;

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:37:11
要求用指针;
能否用 char*i="abcd";来先分配空间,是否与char *str;
str = new char[81];一样的;
第二,三个答案在Turbo c6.0之中不可用.
出现提示 该内存为只读的.
我的问题就是在此出现的问题,*t='c';是行不通;求解;

char*i="abcd";中右值是常量字符串,所以不能对其本身进行修改,必须分配一块内存变量,然后修改之。比如
char * s = (char *)malloc(100);

#include<stdio.h>
<br>
<br>int main()
<br>{
<br> char * t="snbjbiubk";
<br> char * ptr = t;
<br> char a[20];
<br> int i=0;
<br>
<br> while(*ptr)
<br> {
<br> if(*ptr=='b')
<br> a[i]='c';
<br> else
<br> a[i]=*ptr;
<br> ptr++;
<br> i++;
<br> }
<br> a[i]='\0';
<br> printf("%s\n",a);
<br>
<br> return 0;
<br>}

#include<stdio.h>
main()
{
int i=0;
char *t="snbjbiubk";
printf("%s\n",t); /*打印原字符串*/
while(t){
if(*t!='b')
t++;
else{
*t='c';